## Weight enumerator of an MDS linear code

from PyM import *


def weight_enumerator_mds(n,k,q=2):
    if min(k,n-k)<2 or max(k,n-k) >= q:
        return "weight_enumerator_mds error: wrong parameters"
    d = n-k+1
    W = [1] + (d-1)*[0]
    for i in range(d,n+1):
        w = 0
        for j in range(i-d+1):
            w += (-1)**j * binom(i-1,j) * q**(i-d-j)
        w *= binom(n,i)*(q-1)
        W += [w]
    return W
        
'''
Weight enumerator of the RS code of dimension 4
on the non-zero elements of F_9
'''

W = weight_enumerator_mds(8,4,9)

show(W)